import cv2
import numpy as np
import matplotlib.pyplot as plt

# 读取图像
img = cv2.imread('45.webp')

# 获取图像的高度和宽度
height = img.shape[0]
width = img.shape[1]

# 创建一幅新的图像用于存储量化后的结果
new_img = np.zeros((height, width, 3), np.uint8)

# 图像做量化等级为2的量化处理
for i in range(height):
    for j in range(width):
        for k in range(3):  # 对应 BGR 三个分量
            if img[i,j][k]<128:
                gray=0
            else:
                gray=128
                new_img[i,j][k]=np.uint8(gray)
# 将图像从 BGR 转换为 RGB 格式以便正确显示
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
new_img_rgb = cv2.cvtColor(new_img, cv2.COLOR_BGR2RGB)

# 使用 Matplotlib 显示原始图像和量化后的图像
plt.figure(figsize=(10, 5))

plt.subplot(1, 2, 1)
plt.imshow(img_rgb)
plt.title('Original Image')
plt.axis('off')

plt.subplot(1, 2, 2)
plt.imshow(new_img_rgb)
plt.title('Quantized Image')
plt.axis('off')

plt.show()